#include "system/system_manager.hpp"
#include <iostream>

int main() {
    try {
        // 创建组件
        auto udp = std::make_unique<UDPHandler>("192.168.0.2", 5005);
        auto buffer = std::make_unique<ImageBuffer>();
        auto inference = std::make_unique<LanenetInference>(
            "../src/lanenet_float32_optimized.tflite");

        // 创建系统管理器
        SystemManager system(std::move(udp), 
                           std::move(buffer), 
                           std::move(inference));

        // 初始化和启动系统
        if (!system.init()) {
            return 1;
        }
        
        system.start();

        // 等待用户输入退出
        std::cout << "Press Enter to exit..." << std::endl;
        std::cin.get();

        // 停止系统
        system.stop();

    } catch (const std::exception& e) {
        std::cerr << "Error: " << e.what() << std::endl;
        return 1;
    }

    return 0;
}